package ui;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.Image;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.SystemTray;
import java.awt.Toolkit;
import java.awt.TrayIcon;

import javax.swing.BoxLayout;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.IOException;
import java.util.Hashtable;

import javax.swing.Box;
import javax.swing.ButtonGroup;
import javax.swing.DefaultListModel;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JSeparator;
import javax.swing.JTextField;
import javax.swing.ScrollPaneConstants;
import javax.swing.SwingConstants;
import javax.swing.border.BevelBorder;
import javax.swing.border.SoftBevelBorder;

import reproductores.Amarok;
import reproductores.MOC;
import reproductores.OtroReproductor;
import reproductores.Rhythmbox;
import reproductores.VLC;

import utils.CreadorBD;


import entidades.Disco;
import entidades.Grupo;
import entidades.Tema;
import gestores.Sistema;


public class VentanaPrincipal extends JFrame {

	private static final long serialVersionUID = 1L;
	
	//Colores Tema 1
	/*private Color color1 = new Color(35,79,50);
	private Color color2 = new Color(146,204,71);
	private Color color3 = new Color(199,255,92);*/
	
	//Colores Tema 2
	private Color color1 = new Color(69,115,173);
	private Color color2 = new Color(171, 193, 204);
	private Color color3 = new Color(156,207,255);
	
	//Colores Tema 3
	/*private Color color1 = new Color(35,69,50);
	private Color color2 = new Color(146,154,71);
	private Color color3 = new Color(199,205,92);*/
	
	//Colores Tema 4
	/*private Color color1 = new Color(35,69,150);
	private Color color2 = new Color(146,154,171);
	private Color color3 = new Color(199,205,192);*/
	
	//Colores Tema 5
	/*private Color color1 = new Color(10,100,100);
	private Color color2 = new Color(0,154,121);
	private Color color3 = new Color(0,205,152);*/
	
	//Colores Tema 6
	/*private Color color1 = new Color(0,89,70);
	private Color color2 = new Color(0,214,91);
	private Color color3 = new Color(0,255,112);*/
	
	
	private VentanaPrincipal estaVentana;
	private JTextField textoTema;
	private JScrollPane scrollPane;
	private JList listScrollPane;
	private String busqueda;
	private Hashtable<Integer, Tema> temaId;
	private Hashtable<Integer, Disco> discoId;
	private Hashtable<Integer, Grupo> grupoId;
	private JRadioButton temaRadioButton;
	private JRadioButton discoRadioButton;
	private JCheckBox encolar;
	private static String reproductor;

	private String otroReproductor;
	private String encolarTema;
	private String encolarTemaReproducir;
	private String encolarLista;
	private String encolarListaReproducir;
	
	private JRadioButton grupoRadioButton;

	private JMenuBar menuBar;
	
	public VentanaPrincipal() {
		
		otroReproductor = null;
		encolarTema = null;
		encolarTemaReproducir = null;
		encolarLista = null;
		encolarListaReproducir = null;
		
		temaId = new Hashtable<Integer, Tema>();
		discoId = new Hashtable<Integer, Disco>();
		grupoId = new Hashtable<Integer, Grupo>();
		
		busqueda = new String();
		
		estaVentana = this;
		estaVentana.setContentPane(getPanelPrincipal());
		reproductor = Sistema.getNombreReproductor();
		
		
		if (reproductor == null) {
			ConfiguracionInicial x = new ConfiguracionInicial(estaVentana, false);
			
			if (!x.fueCancelado()) {
				reproductor = x.getReproductorSeleccionado();
				try {
					if (x.isCrearBDSelected())
						CreadorBD.cargarDB(false);
						Sistema.crearTablaReproductor();
				
					if (reproductor == "otro") {
						otroReproductor = x.getUbuicacionOtroReproductor();
						encolarTema = x.getComandoEncolarTema();
						encolarTemaReproducir = x.getComandoEncolarTemaReproducir();
						encolarLista = x.getComandoEncolarLista();
						encolarListaReproducir = x.getComandoEncolarListaReproducir();
						
						Sistema.crearTablaOtroReproductor();
						Sistema.cargarDatosOtroReproductor(encolarTema, encolarLista, encolarTemaReproducir, encolarListaReproducir, otroReproductor);
					}
					
					Sistema.setReproductorSeleccionado(reproductor);
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
		else 
		if (reproductor.equals("otro")) {
			String[] comandos = Sistema.getComandosOtroReproductor();
			otroReproductor = comandos[0];
			encolarTema = comandos[1];
			encolarTemaReproducir = comandos[2];
			encolarLista = comandos[3];
			encolarListaReproducir = comandos[4];
		}
		
		if (reproductor.equals("mocp")) {
			String[] mocp = {"bash", "-c", "mocp"};
			try {
				Runtime.getRuntime().exec(mocp);
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		
		//Agregar Componentes
		estaVentana.setJMenuBar(getBarraMenu());
		estaVentana.getContentPane().add(getPanelTextField());
		estaVentana.getContentPane().add(getScrollPane());
		estaVentana.getContentPane().add(getRadioButtonPane());

		
		//Propiedades Frame Principal
		estaVentana.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
		estaVentana.setResizable(false);
		estaVentana.setTitle("Song Launcher");
		estaVentana.setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/images/icono_muisca2.gif")));
		estaVentana.pack();
		estaVentana.setLocationRelativeTo(null);
		estaVentana.setVisible(true);
		
	}
	


	private JPanel getRadioButtonPane() {
		
		JPanel panel = new JPanel();
		temaRadioButton = new JRadioButton("Tema");
		temaRadioButton.setSelected(true);
		temaRadioButton.setMnemonic(KeyEvent.VK_1);
		temaRadioButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e)
            {
				DefaultListModel listModel = new DefaultListModel();
				actualizarListaScrollPaneTemas(listModel);
            }
        });    
		
		discoRadioButton = new JRadioButton("Disco");
		
		discoRadioButton.setMnemonic(KeyEvent.VK_2);
		discoRadioButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e)
            {
				DefaultListModel listModel = new DefaultListModel();
				actualizarListaScrollPaneDiscos(listModel);
            }
        });      
		
		grupoRadioButton = new JRadioButton("Grupo");
		
		grupoRadioButton.setMnemonic(KeyEvent.VK_3);
		grupoRadioButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e)
            {
				DefaultListModel listModel = new DefaultListModel();
				actualizarListaScrollPaneGrupos(listModel);
            }

        });    

		ButtonGroup grupo = new ButtonGroup();
		grupo.add(temaRadioButton);
		grupo.add(discoRadioButton);
		grupo.add(grupoRadioButton);
		
		panel.add(temaRadioButton , BorderLayout.CENTER);
		panel.add(discoRadioButton , BorderLayout.CENTER);
		panel.add(grupoRadioButton , BorderLayout.CENTER);
		panel.add(Box.createHorizontalStrut(5));
		panel.add(new JSeparator(SwingConstants.VERTICAL));
		panel.add(Box.createHorizontalStrut(5));		

		encolar = new JCheckBox("Solamente Encolar");
		encolar.setSelected(false);
		encolar.setMnemonic(KeyEvent.VK_4);
		encolar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e)
            {
				textoTema.requestFocus();
            }
        });      
		
		panel.add(encolar);
		
		panel.setBackground(color1);
		temaRadioButton.setBackground(color1);
		temaRadioButton.setForeground(color2);
		discoRadioButton.setBackground(color1);
		discoRadioButton.setForeground(color2);
		grupoRadioButton.setBackground(color1);
		grupoRadioButton.setForeground(color2);
		encolar.setBackground(color1);
		encolar.setForeground(color2);
		
		return panel;
	}
	
	private void actualizarListaScrollPaneTemas(DefaultListModel listModel) {
		listModel = Sistema.obtenerListaTemas("", temaId, 1);
		listScrollPane.setModel(listModel);
		textoTema.requestFocus();
		listScrollPane.setSelectedIndex(0);
    }
	
	private void actualizarListaScrollPaneDiscos(DefaultListModel listModel) {
		listModel = Sistema.obtenerListaDiscos("", discoId, 1);
		listScrollPane.setModel(listModel);
		textoTema.requestFocus();
		listScrollPane.setSelectedIndex(0);
	}
	
	private void actualizarListaScrollPaneGrupos(DefaultListModel listModel) {
		listModel = Sistema.obtenerListaGrupos("", grupoId, 1);
		listScrollPane.setModel(listModel);
		textoTema.requestFocus();
		listScrollPane.setSelectedIndex(0);
	}
	
	private JPanel getPanelPrincipal() {
		JPanel panel = new JPanel();
		panel.setLayout(new BoxLayout(panel, BoxLayout.PAGE_AXIS));
		return panel;
	}
	
	private JPanel getPanelTextField() {

		JPanel panel = new JPanel();
		
		textoTema = new JTextField("", 32);
		textoTema.setBorder(new SoftBevelBorder(BevelBorder.LOWERED, null, null, null, null));
		textoTema.setFont(new Font("Serif", Font.BOLD, 15));
		panel.add(textoTema, BorderLayout.CENTER);
		
		textoTema.addKeyListener(new KeyAdapter() {
			public void keyReleased(KeyEvent event) {
				getTextoTemaKeyListener(event);
			}
		});
		
		panel.setBackground(color1);
		textoTema.setForeground(color1);
		textoTema.setBackground(color2);
		
		
		return panel;
	}

	private void getTextoTemaKeyListener(KeyEvent event) {
		int codigoTecla = event.getKeyCode();

		DefaultListModel listModel = new DefaultListModel();
		
		busqueda = textoTema.getText();

		if (codigoTecla == 10) {
			encolarTema();
			textoTema.setText("");
		}
		else
		if (codigoTecla == 27) {
			estaVentana.dispose();
		}
		else 
		if (codigoTecla == 38) {
			if (listScrollPane.getSelectedIndex() > 0) {
				listScrollPane.setSelectedIndex(listScrollPane.getSelectedIndex() - 1);
				listScrollPane.ensureIndexIsVisible(listScrollPane.getSelectedIndex() - 1);
			}
		}
		else
		if (codigoTecla == 40) {
			if (listScrollPane.getSelectedIndex() != listScrollPane.getHeight()) {
				listScrollPane.setSelectedIndex(listScrollPane.getSelectedIndex() + 1);
				listScrollPane.ensureIndexIsVisible(listScrollPane.getSelectedIndex() + 1);
			}
		}
		else {
			if (temaRadioButton.isSelected()) 
				listModel = Sistema.obtenerListaTemas(busqueda, temaId, 2);
			else
			if (discoRadioButton.isSelected()) 
				listModel = Sistema.obtenerListaDiscos(busqueda, discoId, 2);
			else
			if (grupoRadioButton.isSelected())
				listModel = Sistema.obtenerListaGrupos(busqueda, grupoId, 2);
		
			listScrollPane.setModel(listModel);
			listScrollPane.setSelectedIndex(0);
		}
				
		//System.out.println(busqueda);
	}
	
	private JPanel getScrollPane() {
		
		JPanel panel = new JPanel();
		
		scrollPane = new JScrollPane();
		scrollPane.setMaximumSize(new Dimension(365,120));
		scrollPane.setBorder(new SoftBevelBorder(BevelBorder.LOWERED, null, null, null, null));
		scrollPane.setViewportView(getListScrollPane());
		scrollPane.getViewport().setPreferredSize(new Dimension(365,70));
		scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
		scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
		panel.add(scrollPane, BorderLayout.CENTER);

		panel.setBackground(color1);
		
		return panel;
	}
	
	private JList getListScrollPane() {
		listScrollPane = new JList();
		DefaultListModel listModel = new DefaultListModel();
		listScrollPane.setFont(new Font("Monospace", Font.BOLD , 11));
		listModel = Sistema.obtenerListaTemas("", temaId, 1);
		listScrollPane.setModel(listModel);
		listScrollPane.setSelectedIndex(0);
	
		listScrollPane.addKeyListener(new KeyAdapter() {
			public void keyPressed(KeyEvent event) {
				getListaScrollPaneKeyListener(event);
			}
		});
		
		listScrollPane.addMouseListener(new MouseAdapter() {
			public void mouseClicked(MouseEvent event) {
				listScrollPaneClicked(event);
			}
		});

		listScrollPane.setSelectionBackground(color3);
		listScrollPane.setForeground(color1);
		listScrollPane.setBackground(color2);
		
		return listScrollPane;
	}
	
	private void getListaScrollPaneKeyListener(KeyEvent event) {
		int codigoTecla = event.getKeyCode();
		
		if (codigoTecla == 10){
			encolarTema();
			textoTema.setText("");
		}
		else
		if (codigoTecla == 27){
			estaVentana.dispose();
			textoTema.setText("");
		}
	}
	
	private void listScrollPaneClicked(MouseEvent event) {
		if (event.getClickCount() == 2) {
			encolarTema();
			textoTema.setText("");
		}
	}
	
	private void encolarTema() {
		
		String url = "";
		Tema tema;
		Disco disco;
		Grupo grupo;
		String primerTema = "";
		
		if (temaRadioButton.isSelected()) {
			tema = (Tema) temaId.get(listScrollPane.getSelectedIndex());
			url =  tema.getUrl();
		}
		else
		if (discoRadioButton.isSelected()) {
			disco = (Disco) discoId.get(listScrollPane.getSelectedIndex());
			url = Sistema.getTemasDisco(disco);
			String[] split = url.split("\""); 
			primerTema = "\"" + split[1] + "\"";
		}
		else
		if (grupoRadioButton.isSelected()) {
			grupo = (Grupo) grupoId.get(listScrollPane.getSelectedIndex());
			url = Sistema.getTemasGrupo(grupo);
			String[] split = url.split("\""); 
			primerTema = "\"" + split[1] + "\"";
		}
		
		
		if (reproductor.equals("mocp")) 
			MOC.encolar(encolar.isSelected(), temaRadioButton.isSelected(), url, primerTema);
		else
		if (reproductor.equals("rhythmbox"))
			Rhythmbox.encolar(encolar.isSelected(), temaRadioButton.isSelected(), url, primerTema);
		else 
		if (reproductor.equals("vlc"))
			VLC.encolar(encolar.isSelected(), temaRadioButton.isSelected(), url, primerTema);
		else
		if (reproductor.equals("amarok"))
			Amarok.encolar(encolar.isSelected(), temaRadioButton.isSelected(), url, primerTema);
		else
		if (reproductor.equals("otro"))
			OtroReproductor.encolar(encolar.isSelected(), temaRadioButton.isSelected(), url, primerTema, otroReproductor , encolarTema, encolarLista, encolarTemaReproducir, encolarListaReproducir);
			
		estaVentana.dispose();
	}
	
	
	public static void main(String[] args) {
		
		Runnable correr = new Runnable(){

			@Override
			public void run() {
				if(java.awt.SystemTray.isSupported()) {
					
					final VentanaPrincipal x = new VentanaPrincipal();
					
				    final SystemTray sTray =  SystemTray.getSystemTray();
				    
		            MouseListener mouseListener = new MouseListener() {
		            	
		                public void mouseClicked(MouseEvent e) {
		                	if (x.isVisible())
		                		x.setVisible(false);
		                	else
		                		x.setVisible(true);
		                }
						public void mouseEntered(MouseEvent arg0) {}
						public void mouseExited(MouseEvent arg0) {}
						public void mousePressed(MouseEvent arg0) {}
						public void mouseReleased(MouseEvent arg0) {}
		                
		            };
		           		    
				    Image img = Toolkit.getDefaultToolkit().getImage(getClass().getResource("/images/icono_muisca_tray2.gif"));
				    PopupMenu pMenu = new PopupMenu();
				    
				    final TrayIcon tIcon  = new TrayIcon(img, "SongLauncher", pMenu); 

				    tIcon.addMouseListener(mouseListener);
				    
				    MenuItem stop = new MenuItem("Stop");
				    
				    stop.addActionListener(new ActionListener(){
				    	public void actionPerformed(java.awt.event.ActionEvent ev){
				    		if (reproductor.equals("mocp")) 
				    			MOC.stop();
				    		else
				    		if (reproductor.equals("rhythmbox"))
				    			Rhythmbox.stop();
				    		else 
				    		if (reproductor.equals("vlc"))
				    			System.out.println("Su reproductor no permite dicha accion");
				    		else
				    		if (reproductor.equals("amarok"))
				    			Amarok.stop();
				    		else
				    		if (reproductor.equals("otro"))
				    			System.out.println("No se posee informacion suficiente de su reproductor para llevar a cabo dicha accion");

				    	}
				    });
				    pMenu.add(stop);
				    
				    MenuItem pausePlay = new MenuItem("Pause/Play");
				    
				    pausePlay.addActionListener(new ActionListener(){
				    	public void actionPerformed(java.awt.event.ActionEvent ev){
				    		if (reproductor.equals("mocp")) 
				    			MOC.playPause();
				    		else
				    		if (reproductor.equals("rhythmbox"))
				    			Rhythmbox.playPause();
				    		else 
				    		if (reproductor.equals("vlc"))
				    			System.out.println("Su reproductor no permite dicha accion");
				    		else
				    		if (reproductor.equals("amarok"))
				    			Amarok.playPause();
				    		else
				    		if (reproductor.equals("otro"))
				    			System.out.println("No se posee informacion suficiente de su reproductor para llevar a cabo dicha accion");

				    	}
				    });
				    
				    pMenu.add(pausePlay);
				    pMenu.addSeparator();
				    
				    MenuItem mitRestaura = new MenuItem("Restaurar");
				    mitRestaura.addActionListener(new ActionListener(){
				    	public void actionPerformed(java.awt.event.ActionEvent ev){
				    		x.setVisible(true);
				    		x.textoTema.setFocusable(true);
				    	}
				    });
				    
				    pMenu.add(mitRestaura);
				    
				    MenuItem mitCierra = new MenuItem("Cerrar");
				    mitCierra.addActionListener(new ActionListener(){
				    	public void actionPerformed(java.awt.event.ActionEvent ev){
				    		System.exit(0);
				    	}
				    });
				    
				    pMenu.add(mitCierra);

				    try{
				    	sTray.add(tIcon);
				    }catch(Exception e){
				    	e.printStackTrace();
				    }
				}
				else {
					System.out.println("Su sistema operativo no soporta Tray Bar");
				}
				
			}};
		
			EventQueue.invokeLater(correr);
	}
	
	private JMenuBar getBarraMenu() {

		JMenuItem menuItem;
		JMenu menuAccion;
		JMenu menuReproductor;
		menuBar = new JMenuBar();
		
		menuAccion = new JMenu("Accion");
		menuAccion.setMnemonic(KeyEvent.VK_A);
		menuBar.add(menuAccion);
		
		menuItem = new JMenuItem("Crear Base Datos");
		menuItem.addActionListener(new ActionListener(){
	    	public void actionPerformed(java.awt.event.ActionEvent ev){
	    		
				int respuesta = JOptionPane.showConfirmDialog(estaVentana, "La opcion que usted ha seleccionado eliminira la base de datos si es que se ha creado y la reemplazara por una nueva.\nEn caso de que usted quiera agregar nuevos temas a la base de datos, seleccione \"Agregar media\".", "Advertencia!", JOptionPane.YES_NO_OPTION);
				if(JOptionPane.YES_OPTION == respuesta) {
		    		try {
						CreadorBD.cargarDB(false);
						if (temaRadioButton.isSelected()) {
							DefaultListModel listModel = new DefaultListModel();
							actualizarListaScrollPaneTemas(listModel);
						}
						else 
						if (discoRadioButton.isSelected()) {
							DefaultListModel listModel = new DefaultListModel();
							actualizarListaScrollPaneDiscos(listModel);
						}
						else {
							DefaultListModel listModel = new DefaultListModel();
							actualizarListaScrollPaneGrupos(listModel);
						}
					} catch (IOException e) {
						e.printStackTrace();
					}
				}
	    	}
	    });
		menuAccion.add(menuItem);
		
		menuItem = new JMenuItem("Agregar Media");
		menuItem.addActionListener(new ActionListener(){
	    	public void actionPerformed(java.awt.event.ActionEvent ev){
	    		try {
					CreadorBD.cargarDB(true);
					if (temaRadioButton.isSelected()) {
						DefaultListModel listModel = new DefaultListModel();
						actualizarListaScrollPaneTemas(listModel);
					}
					else 
					if (discoRadioButton.isSelected()) {
						DefaultListModel listModel = new DefaultListModel();
						actualizarListaScrollPaneDiscos(listModel);
					}
					else {
						DefaultListModel listModel = new DefaultListModel();
						actualizarListaScrollPaneGrupos(listModel);
					}
				} catch (IOException e) {
					e.printStackTrace();
				}
	    	}
	    });
		menuAccion.add(menuItem);
		
		menuAccion.addSeparator();
		menuItem = new JMenuItem("Cerrar");
		menuItem.addActionListener(new ActionListener(){
	    	public void actionPerformed(java.awt.event.ActionEvent ev){
	    		estaVentana.setVisible(false);
	    	}
	    });
		menuAccion.add(menuItem);
		menuItem = new JMenuItem("Salir");
		menuItem.addActionListener(new ActionListener(){
	    	public void actionPerformed(java.awt.event.ActionEvent ev){
	    		System.exit(0);
	    	}
	    });
		menuAccion.add(menuItem);

		menuReproductor = new JMenu("Reproductor");
		menuReproductor.setMnemonic(KeyEvent.VK_R);
		menuBar.add(menuReproductor);

		menuItem = new JMenuItem("Cambiar Reproductor por defecto");
		menuItem.addActionListener(new ActionListener(){
	    	public void actionPerformed(java.awt.event.ActionEvent ev){

	    		ConfiguracionInicial cambiarRepr = new ConfiguracionInicial(estaVentana, true);
	    		
	    		if (!cambiarRepr.fueCancelado()) {
	    			reproductor = cambiarRepr.getReproductorSeleccionado();
	    		
	    			if (reproductor == "otro") {
	    				otroReproductor = cambiarRepr.getUbuicacionOtroReproductor();
	    				encolarTema = cambiarRepr.getComandoEncolarTema();
	    				encolarTemaReproducir = cambiarRepr.getComandoEncolarTemaReproducir();
	    				encolarLista = cambiarRepr.getComandoEncolarLista();
	    				encolarListaReproducir = cambiarRepr.getComandoEncolarListaReproducir();
					
	    				Sistema.crearTablaOtroReproductor();
						Sistema.cargarDatosOtroReproductor(encolarTema, encolarLista, encolarTemaReproducir, encolarListaReproducir, otroReproductor);
	    			}
	    			
	    			Sistema.quitarViejoReproductor();
	    			Sistema.setReproductorSeleccionado(reproductor);
	    		}
	    	}
	    });
		
		menuReproductor.add(menuItem);	
		menuReproductor.addSeparator();
		
		menuItem = new JMenuItem("Limpiar Lista Reproduccion");
		menuItem.addActionListener(new ActionListener(){
	    	public void actionPerformed(java.awt.event.ActionEvent ev){
	    		if (reproductor.equals("mocp")) 
	    			MOC.limpiarLista();
	    		else
	    		if (reproductor.equals("rhythmbox"))
	    			Rhythmbox.limpiarLista();
	    		else 
	    		if (reproductor.equals("vlc"))
	    			System.out.println("Su reproductor no permite dicha accion");
	    		else
	    		if (reproductor.equals("amarok"))
	    			System.out.println("Su reproductor no permite dicha accion");
	    		else
    			if (reproductor.equals("otro"))
    				System.out.println("No se posee informacion suficiente de su reproductor para llevar a cabo dicha accion");

	    	}
	    });
		
		menuReproductor.add(menuItem);
		
		menuItem = new JMenuItem("Activar Shuffle");
		menuItem.addActionListener(new ActionListener(){
	    	public void actionPerformed(java.awt.event.ActionEvent ev){
	    		if (reproductor.equals("mocp")) 
	    			MOC.activarShuffle();
	    		else
	    		if (reproductor.equals("rhythmbox"))
	    			System.out.println("Su reproductor no permite dicha accion");
	    		else 
	    		if (reproductor.equals("vlc"))
	    			VLC.activarShuffle();
	    		else
	    		if (reproductor.equals("amarok"))
	    			System.out.println("Su reproductor no permite dicha accion");
	    		else
    			if (reproductor.equals("otro"))
    				System.out.println("No se posee informacion suficiente de su reproductor para llevar a cabo dicha accion");
	    	}
	    });
		
		menuReproductor.add(menuItem);
		
		menuItem = new JMenuItem("Desactivar Shuffle");
		menuItem.addActionListener(new ActionListener(){
	    	public void actionPerformed(java.awt.event.ActionEvent ev){
	    		if (reproductor.equals("mocp")) 
	    			MOC.desactivarShuffle();
	    		else
	    		if (reproductor.equals("rhythmbox"))
	    			System.out.println("Su reproductor no permite dicha accion");
	    		else 
	    		if (reproductor.equals("vlc"))
	    			VLC.desactivarShuffle();
	    		else
	    		if (reproductor.equals("amarok"))
	    			System.out.println("Su reproductor no permite dicha accion");
	    		else
    			if (reproductor.equals("otro"))
    				System.out.println("No se posee informacion suficiente de su reproductor para llevar a cabo dicha accion");
	    	}
	    });
		
		menuReproductor.add(menuItem);
		
		return menuBar;
		
	}
}
